/*
 * Clase que crea objetos tipo nodo para las DLL.
 */
package fuente.estructuras;

public class DLLNode {
    
    protected Object _data;
    protected DLLNode _succ, _pred;
    
    public DLLNode (Object pData) {
        this (pData, null, null);
    }
    
    public DLLNode (Object pData, DLLNode pSucc, DLLNode pPred) {
        _data = pData;
        _succ = pSucc;
        _pred = pPred;
    }

    /* Inicio declaraciones de getters y setters */
    
    /**
     * Retorna el dato almacenado en el nodo.
     * @return El dato
     */
    public Object getData() {
        return _data;
    }

    /**
     * Establecer el dato que se almacena en el nodo.
     * @param pData El dato a establecer como _data
     */
    public void setData(Object pData) {
        _data = pData;
    }

    /**
     * Retorna el nodo enlazado como siguiente del objeto.
     * @return El nodo sucesor
     */
    public DLLNode getSucc() {
        return _succ;
    }

    /**
     * Establece el enlace a un nodo siguiente del objeto.
     * @param pSucc El nodo sucesor
     */
    public void setSucc(DLLNode pSucc) {
        _succ = pSucc;
    }

    /**
     * Retorna el nodo enlazado como anterior al objeto.
     * @return El nodo predecesor
     */
    public DLLNode getPred() {
        return _pred;
    }

    /**
     * Establece el enlace al nodo anterior al objeto.
     * @param pPred El nodo predecesor
     */
    public void setPred(DLLNode pPred) {
        _pred = pPred;
    }
    /* Final de declaraciones de getters y setters */
    
    
    
}
